vkladani tabulky do Wordu - OLE

Otázka od: Martin Bednar

28. 5. 2004 7:25

DD,

potrebuji poradit s nasl. problemem. Potrebuji vkladat na urcite misto
ve Word dokumentu tabulku pomoci OLE. Tu umim vytvorit i vlozit, ale
pouze na zacatek dokumentu. Tabulku vkladam nejak takto:

WordTable := Doc.Tables.Add( WordApp.Selection.Range, iRows ,iCols );

Jak Wordu rict v Delphi, aby ji vytvoril na nejakem konkretnim miste (
parametr: WordApp.Selection.Range ).

Dekuji mnohokrate za pomoc.



--
S pozdravem,
 Martin Bednar
 bednar@mujweb.cz
 patek 28. kvetna 2004 8:00:59


Odpovedá: Jan Harman

28. 5. 2004 11:21

> potrebuji poradit s nasl. problemem. Potrebuji vkladat na urcite misto
> ve Word dokumentu tabulku pomoci OLE. Tu umim vytvorit i vlozit, ale
> pouze na zacatek dokumentu. Tabulku vkladam nejak takto:
>
> WordTable := Doc.Tables.Add( WordApp.Selection.Range, iRows ,iCols );
>
> Jak Wordu rict v Delphi, aby ji vytvoril na nejakem konkretnim miste (
> parametr: WordApp.Selection.Range ).

WordApp.Selection.Find.Execute...
...presune kurzor na nalezeny text, ale nevim jestli tam vlozi tu tabulku,
zkus to a dej vedet. Pokud umis i naplnit tabulku, tak bych te poprosil o
priklad. Diky.
Honza


Odpovedá: Martin Bednar

28. 5. 2004 12:04

Tabulku plnim napr. nejak takto:

 for iGridRows := 1 to iRows do
    for jGridCols := 1 to iCols do
      WordTable.Cell(iGridRows, jGridCols).Range.Text := 'abcdefgh';

Muj problem je v tom, ze potrebuji nejak nastavit "range".

  Doc := WordApp.ActiveDocument;
  Doc.Range(0,9);
  Doc.Select;
  ^^^Toto mi vybere a oznaci prvnich 9 znaku v dokumentu, ale to je mi
  nanic pocitat znaky do mista, kam chci tab. umistit ?!!!

  Melo by snad fugovat i toto:

  Doc.SetRange( Doc.Sentences(2).Start , Doc.Sentences(4).end );

  coz by melo oznacit 2. az 4. vetu, coy uz by pouzitelne bylo, ale
  takto zapsane delphi zahlasi, ze "sentences neni metoda", takze
  neporadi nekdo jak se dostat na konkretni misto v dokumentu wordu,
  predem dekuji.


------------
S pozdravem,
 Martin Bednar
 bednar@mujweb.cz
 patek 28. kvetna 2004 12:51:00

>> WordTable := Doc.Tables.Add( WordApp.Selection.Range, iRows ,iCols );
>>
>> Jak Wordu rict v Delphi, aby ji vytvoril na nejakem konkretnim miste (
>> parametr: WordApp.Selection.Range ).

JH> WordApp.Selection.Find.Execute...
JH> ...presune kurzor na nalezeny text, ale nevim jestli tam vlozi tu tabulku,
JH> zkus to a dej vedet. Pokud umis i naplnit tabulku, tak bych te poprosil o
JH> priklad. Diky.
JH> Honza




Odpovedá: Pave Gazda

28. 5. 2004 13:27

Ahoj,

> coz by melo oznacit 2. az 4. vetu, coy uz by pouzitelne bylo, ale
> takto zapsane delphi zahlasi, ze "sentences neni metoda", takze
> neporadi nekdo jak se dostat na konkretni misto v dokumentu wordu,
> predem dekuji.

posun o pocet znaku:

    OChar := wdCharacter;
    OCount:= Pocet;
    MWord.Dokumenty[idx].Activate;
    if Boolean(Vpravo) then

MWord.Dokumenty[Idx].Application.Selection.MoveRight(OChar,OCount,EmptyParam
)
    else

MWord.Dokumenty[Idx].Application.Selection.MoveLeft(OChar,OCount,EmptyParam)
;


posun o pocet radku:

    OLine := wdLine;
    OCount:= Pocet;
    MWord.Dokumenty[idx].Activate;
    if Boolean(Dolu) then

MWord.Dokumenty[Idx].Application.Selection.MoveDown(OLine,OCount,EmptyParam)
    else

MWord.Dokumenty[Idx].Application.Selection.MoveUp(OLine,OCount,EmptyParam);


Pavel Gazda
placeny amater